package com.ipt.frm.pw;

import java.io.IOException;
import java.text.MessageFormat;
import java.util.Properties;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Servlet implementation class LoginServlet
 */
public final class LoginServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	//mensajes enviados por request para mostrar al usuario
	static final String MSG = "MSG";   
	
	//parametros de inicio del servlet
	static final String INIT_PARAM_USER_NAME = "username"; 
	static final String INIT_PARAM_USER_PASS = "userpass";
	
	//parametros de la request login.jsp
	static final String LOGIN_JSP_PARAM_USER_NAME = "user"; 
	static final String LOGIN_JSP_PARAM_USER_PASS = "password";
	
	static Properties propertiesMsg;
	
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LoginServlet() {
        super();
    }

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		RequestDispatcher dispacher = null;
		HttpSession session = request.getSession();
		
		//recoger valores de la request
		String loginUser = request.getParameter(LOGIN_JSP_PARAM_USER_NAME);
		String loginPass = request.getParameter(LOGIN_JSP_PARAM_USER_PASS);
		
		propertiesMsg = (Properties) getServletContext().getAttribute("propertiesMsg");
		//coger parametros de inicio servlet y comparar con los de la jsp		
		if (getInitParameter(INIT_PARAM_USER_NAME).equals(loginUser) &&
			getInitParameter(INIT_PARAM_USER_PASS).equals(loginPass)){
			
			//si correcto guardar en session e ir a index.jsp			
			session.setAttribute(INIT_PARAM_USER_NAME, loginUser);
			session.setAttribute(INIT_PARAM_USER_PASS, loginPass);
			
			dispacher = request.getRequestDispatcher("index.jsp");
			
			request.setAttribute("MSG",new Mensaje(TipoMensaje.EXITO,MessageFormat.format(propertiesMsg.getProperty("login.success"),session.getAttribute("username"))));				    
			//request.setAttribute("MSG",new Mensaje(TipoMensaje.EXITO,propertiesMsg.getProperty("login.success")));
			//request.setAttribute("MSG", new Mensaje(TipoMensaje.EXITO,"Logeado correctamente"));
			request.setAttribute("title", "Pagina de inicio");
			
		}else{
			//si no es correcto ir a login.jsp con un mensaje de error
			dispacher = request.getRequestDispatcher("login.jsp");
			
			//TODO poner estos literales en un fichero .properties, para q sean multidioma	    	
			//request.setAttribute(MSG, new Mensaje(TipoMensaje.ERROR,"Usuario y password no validos"));
			request.setAttribute("MSG",new Mensaje(TipoMensaje.ERROR,propertiesMsg.getProperty("login.error")));
			
			request.setAttribute("title", "Login");
		}		
		
		dispacher.forward(request, response);			

	}

}
